Version 2.01
------------

* Nouveauts:
-------------
 - Ajout de la lecture mp3 et atrac3(plus) en hardware (ncessite le mode kernel). La lecture mp3 est limite car il faut que le fichier ne soit pas tagu et soit en 44100 Hz.
 - Ajout oslSetExitCallback (fonction  appeler lorsque l'application est termine).
 - Corrig le problme du chargement de PNG paletts qui ne tenaient pas en compte la couleur transparente.
 - Corrig le problme qui empchait de charger un fichier dont le nom contenait un point.
 - Corrig le bug de oslWriteImageFile qui plantait.
 - Ajout oslImageIsMirroredH et oslImageIsMirroredV.
 - Les images charges sont  prsent swizzles automatiquement par dfaut,  moins que vous ajoutiez OSL_UNSWIZZLED aux flags de placement (ex: OSL_IN_VRAM | OSL_UNSWIZZLED). Vous pouvez revenir au comportement par dfaut en appelant oslSetImageAutoSwizzle(0) au dmarrage.
 - Ajout une possibilit de faire analog to D-Pad au OSL_CONTROLLER.
 - oslSet/GetImagePixel fonctionnent maintenant aussi pour les images swizzles (mais c'est bien videmment plus lent de dessiner sur une image swizzle...).
 - Corrig le problme de plantage lorsqu'on dessine une image avec rotation et stretchX/Y nuls.
 - Meilleure scurit avec la VirtualFileSource VF_MEMORY.
 - Ajout de oslGetRamStatus (RAM libre).
 - Ajout de oslDeleteMap.
 - Corrig le bug des fontes de la version alpha 1.
 - La copie d'images swizzles fonctionne  prsent.
 - Le splash screen OSLib (1) n'a plus besoin de fichiers additionnels.

* Changements qui font tout pter:
----------------------------------
 - Les images sont swizzles automatiquement lorsque vous les chargez (oslLoadImageFile), mais pas lorsque vous les crez. Vous ne pouvez donc pas les manipuler comme vous voulez. Pour retrouver la compatibilit dans un projet dj commenc, appelez oslSetImageAutoSwizzle(0) au dmarrage (avant de charger vos fichiers).
 - oslUncacheImageAll renomm en oslUncacheImage (plus logique: dcache l'image entire)
 - oslUncacheImage renomm en oslUncacheImageData (ne dcache que les donnes de l'image, pas la palette)



Version 2.00 alpha 1
--------------------

Ajouts & modifications:
 - osl_keys->pressed.truc remplac par osl_pad.pressed.truc (l'ancienne mthode est toujours disponible)
 - Nouveaux formats audio: MOD, S3M, IT et XM! ATTENTION: UN SEUL FICHIER DE CES FORMATS NE PEUT TRE JOU  LA FOIS! Seuls le BGM et le WAV supportent les instances multiples.
 - Nouveau systme de gestion dynamique de VRAM: vous pouvez charger et dcharger des images de la VRAM cmome vous le voulez :)
 - Vous pouvez maintenant dplacer des images de RAM <=> VRAM  n'importe quel moment!
 - Vous pouvez "dswizzler" les images, et les swizzler plus facilement (mme  leur cration)!
 - Vous pouvez maintenant directement charger des images palettes, crer une image palette depuis une image "true color" (16 ou 32 bits) ou encore convertir entre deux pixel formats diffrents!
 - Possibilit de lire et crire des pixels isols sur l'image.
 - Vous pouvez dfinir si vous voulez automatiquement afficher un message d'erreur lorsqu'un fichier n'a pas pu tre charg (et le jeu quitte direct ensuite).
 - Nouveau format de maps supportant le mirroring des tiles comme sur GBA.
 - Routine de map plus optimise. Aussi rapide que oslDrawMapSimple mais sans les limitations.
 - Nouveau format de police 4 bits: vous pouvez afficher des caractres plus sophistiqus, qui peuvent tre tints.
 - Nouveau moteur de texte, plus rapide si vous dsactivez l'arrire plan opaque.
 - Dessin d'image plus rapide. Maintenant, les grandes images tournes sont galement dessines rapidement. oslDrawImage est plus rapide et vous n'avez plus besoin d'utiliser oslDrawImageSimple.
 - Les coordonnes calcules de l'image pour les images rotationnes sont plus prcises; la rotation est de meilleure qualit.
 - Meilleur mixeur son. Si vous jouez un son sur une voie dj occupe, l'ancien son sera coup et le nouveau dmarrera. Vous ne pouvez par contre pas jouer un mme son sur plusieurs voies, il faut crer plusieurs instances.
 - Nouvel effet: OSL_FX_TINT, permettant de tinter ses objets.
 - Nouvelles variables OSL_SCREEN_WIDTH / HEIGHT (dpendent du drawbuffer courant).
 - Vous pouvez maintenant dfinir le framerate que vous voulez (ex. 50 fps).
 - Le dithering (tramage de l'image en mode 16 bits) peut tre activ / dsactiv (dsactiv par dfaut).
 - La rsolutionp peut maintenant tre change  tout moment, il faut juste appeler oslInitGfx avec la nouvelle rsolution.
 - La taille de la display list par dfaut peut tre redfinie (influe sur le nombre d'instructions graphiques que vous pourrez excuter avant d'avoir besoin d'appeler oslSyncDrawing).
 - oslInit a maintenant de nouveaux arguments qui permettent ventuellement  OSLib d'tre moins intrusive.
 - Nouvelles fonctions de texte (GetStringWidth, ...).
 - Nouveau systme de fichiers virtuels! Tout peut maintenant tre charg depuis un fichier ou la mmoire ou une device personnalise.
 - Vous pouvez dfinir une valeur de alpha  crire sur le drawbuffer en mme temps que les pixels crits (oslSetAlphaWrite). Utile pour le dessin sur image.
 - Nouveau code de synchronisation, meilleur et plus propre.
   - Fix le problme du cisaillement qui pouvait apparatre sur le haut de l'cran lorsque le son demandait beaucoup de CPU.


Bugfixes:
 - Le clipping est dfini automatiquement avec oslSetDrawBuffer!
 - Sur PC, tous les types de texture sont maintenant supports; si le hardware ne supporte pas un format, il sera convertit automatiquement.


"Breaking changes" (j'ai mis ici toutes les modifications internes qui pourraient avoir un effet sur votre code; si vous utilisiez les features documentes, cela ne devrait pas poser de problme. Cette section liste aussi tous les changements depuis la dernire version ainsi que certains changements depuis la toute premire version (ceux dont je me souviens); vous ne devriez pas tre concerns par la plupart d'entre eux).
 - OSL_IMAGE->autoStrip retir. Remplac par oslImageSetAutoStrip et oslImageGetAutoStrip!
 - oslSwizzleImage renomm en oslSwizzleImageTo (oslSwizzleImage demande un seul argument  prsent: l'image  swizzler directement)
 - oslCopyImage renomm vers oslCopyImageTo.
 - OSL_IMAGE.isCopy et OSL_IMAGE.isSwizzled remplacs par oslImageIsCopy(OSL_IMAGE) et oslImageIsSwizzled(OSL_IMAGE).
 - oslSetChannelVolume retir (dfinissez directement le volume du son au lieu de a, c--d avec OSL_SOUND->volumeLeft / volumeRight = ...). Devrait simplifier votre code.
 - La gomtrie non texture (rectangles, lignes, etc.) prennent maintenant les valeurs d'alpha en compte (oslSetAlpha). Si vous faisiez le blending par vous mme, retirez votre code. Si vous vous attendiez  ce qu'ils soient dessins de faon opaque, vous devrez dsactiver l'alpha avant de les dessiner, comme vous auriez fait pour une image. Une bidouille dprcie est de dfinir osl_currentAlphaCoeff  0xffffffff, mais ce n'est pas assur de rester compatible dans le futur (et a risque aussi de causer des problmes avec oslGetAlphaEx et autres si vous ne restaurez pas la valeur initiale).
 - oslCos et oslSin utilisent des float only  prsent! Il y a oslSini et oslCosi qui utilisent des entiers  la place (mais ce n'est pas exactement pareil).
 - oslLoadImageFile ne lira pas les images dont l'extension n'est pas .png (ou .gif ou .jpg)! Si vous aviez chang l'extension de vos fichiers, cela ne fonctionnera plus. Utilisez plutt oslLoadImageFilePNG.
 - Utilisez oslSetDithering plutt que sceGuEnable(GU_DITHER), c'est plus propre vu que a stocke l'tat courant afin que vous puissiez vous en souvenir ;)
 - oslGetImageSizeX et oslGetImageSizeY renomm en oslGetImageWidth et oslGetImageHeight, et mme si les anciens sont toujours accessibles, vous devriez viter de les utiliser. Renommez vos appels vers ces fonctions.
 - oslLoadPalette renomm en oslCreatePaletteFrom.
 - La plupart des fonctions de la VFPU ont t retires, elles n'taient de toute faon pas documentes et compltement inutiles puisque la FPU est  prsent utilise en standard. Faites juste attention  bien utiliser des float et non des double. Par exemple, pour les constantes numriques  virgule, il faut toujours rajouter un 'f'  la fin. Exemple: 'f * 0.1f' au lieu de 'f * 0.1'.
    - Remplacez r = vfpu_add(f1, f2) par r = f1 + f2 (a sera mme plus rapide)
    - Remplacez r = vfpu_sub(f1, f2) par r = f1 - f2 (pareil)
    - Remplacez r = vfpu_mul(f1, f2) par r = f1 * f2
    - Remplacez r = vfpu_div(f1, f2) par r = f1 / f2
    - Remplacez r = vfpu_f2i(v) par r = (int)v
    - Remplacez r = vfpu_i2f(v) par r = (float)v
    - vfpu_sini(f1, f2) et vfpu_cosi(f1, f2) taient bugues, utilisez oslCos et oslSin ou oslCosi et oslSini.
    - Remplacez r = vfpu_isubf(f1, f2) par r = (int)(f1 - f2).
 - osl_currentAlphaCoeff contient  prsent la teinte complte. Avant, si vous appeliez par exemple oslSetAlpha(OSL_FX_ALPHA, 0x80) il aurait contenu 0x80, maintenant il contiendra 0x80ffffff.


